#ifndef __CM_NAT_TRANSPORT_H__
#define __CM_NAT_TRANSPORT_H__

#include "Common.h"
#include "tag.h"
#include "Candidate.h"
#include "RemoteCandidate.h"

namespace cm_nat
{
    using namespace cm_xmpp;

    class Transport
    {
    public:
        Transport();
        virtual ~Transport();

        bool addCandidate( Candidate* p_cd );
        bool addRemoteCandidate(RemoteCandidate* p_rcand);

        virtual Tag* tag() const;
        bool parse(Tag* p_tag);

    protected:
        CandidateList m_candidates;
        RemoteCandidate* m_remoteCandidate;
    private:
        std::string m_ufrag;
        std::string m_pwd;
    };

    typedef std::list<Transport*> TransportList;
}

#endif